package com.udi.project.business.upload.diup.mapper;

import com.udi.framework.web.domain.AjaxResult;
import com.udi.project.business.base.domain.BaseCorpVo;
import com.udi.project.business.upload.diup.domain.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.io.IOException;
import java.util.List;

@Mapper
public interface GetDiupMesMapper {

    /**
     * 查询完整的di信息，下拉补全，根据名称获得规格，从而获得最小销售单元产品标识
     * @param name
    [di]* @return java.util.List<com.udi.project.business.upload.diup.domain.dt_di_indentityVo>
     * @author yuxin
     * @date 2021/10/15 16:15
     */
    List<dt_di_indentityVo> getDiup(@Param("name") String name);

    /**
     * 查询列表
     * @param data
     [map]* @return java.util.List<com.udi.project.business.upload.diup.domain.dt_di_indentityVo>
     * @author yuxin
     * @creed: Talk is cheap,show me the code
     * @date 2021/10/15 17:40
     */
    List<dt_di_indentityVo> getDiupMes(dt_di_indentityVo data);

    /**
     *
     * @param Id 根据Id查询DeviceData
     * @return DeviceData
     */
    public DeviceData  getDeviceDataById(@Param("Id") Integer Id);

    /**
     *
     * @param Id 根据最小销售单元查询DevicePackage列表
     * @return DevicePackage
     */
    public List<DevicePackage>  getDevicePackageListById(@Param("Id") String Id);
    /**
     *
     * @param Id 根据最小销售单元查询DeviceStorage列表
     * @return DeviceStorage
     */
    public List<DeviceStorage>  getDeviceStorageListById(@Param("Id") String Id);
    /**
     *
     * @param Id 根据最小销售单元查询DeviceClinical列表
     * @return DeviceClinical
     */
    public List<DeviceClinical>  getDeviceClinicalListById(@Param("Id") String Id);




    /**
     *
     * @Description:DI申报
     * @param what 申报数据
     * @return: com.udi.framework.web.domain.AjaxResult 返回申报结果消息
     * @Date: 2021/8/10 9:20
     */
    public AjaxResult declare(Product what) throws IOException;


    /**
     * 返回申报的封装数据
     * @param id 标识表id
     * @return List<Product> 集合
     */
    List<Product> getProductList(String id);
    /**
     * 返回申报的封装数据
     * @param id 标识表id
     * @return List<DevicePackage> 集合
     */
    List<DevicePackage> getDevicePackageList(String id);

    /**
     * 返回申报的封装数据
     * @param id 标识表id
     * @return List<DeviceStorage> 集合
     */
    List<DeviceStorage> getDeviceStorageList(String id);
    /**
     * 返回申报的封装数据
     * @param id
     * @return List<Product> 集合
     */
    List<DeviceClinical> getDeviceClinicalList(String id);


    /**
     * 主表插入
     */
    public int insertDeviceData(DeviceData deviceData);

    /**
     * 包装标识信息
     */
    public int insertDevicePackage(@Param("diList") List<DevicePackage> diList);
    /**
     * 存储或操作标识信息
     */
    public int insertDeviceStorage(@Param("diList") List<DeviceStorage> diList);
    /**
     * 临床尺寸信息
     */
    public int insertDeviceClinical(@Param("diList") List<DeviceClinical> diList);

    /**
     * 根据userId查询企业基础信息
     * @param userId
     [loginName]* @return java.lang.String
     * @author yuxin
     * @creed: Talk is cheap,show me the code
     * @date 2021/10/28 9:48
     */
    public BaseCorpVo getCurrDtBaseCorp(@Param("userId") Long userId);

}
